import com.google.appengine.api.datastore.Entity
import com.google.appengine.api.datastore.Blob
import com.google.appengine.api.datastore.Key
import com.google.appengine.api.datastore.*
import static com.google.appengine.api.datastore.FetchOptions.Builder.*
import com.pobos.model.*


if (params['key']) {
	
	def activacion = params['key']
	
	Entity usuario = obtenUsuarioPorActivacion(activacion)
	
	if (usuario) {
		
		usuario.activo = true
		datastore.put(usuario)
		
		request.perfil = usuario.perfil
		request.mensaxe="Usuario ${usuario.nome} activado."
		request.contido="""Xa podes facer login <a href='/login'>aquí</a>"""	
		forward '/exito.gtpl'	
	} else {
		request.erro="Non foi atopado ningún usuario con esa chave de activación!"
		forward '/index.gtpl'
	}
	
}


def obtenUsuarioPorActivacion(String cadeaActivacion) {
	def query = new Query(Usuario.class.simpleName)
	query.addFilter("activacion", Query.FilterOperator.EQUAL, cadeaActivacion)
	def preparedQuery = datastore.prepare(query)
	
	if (preparedQuery.countEntities() == 0) {
		return null;
	} else {
		if(preparedQuery.countEntities() > 1){
			return preparedQuery.asList(withLimit(1))[0]
		}else{
			return preparedQuery.asSingleEntity()
		}
	}
	
}    
